package com.gpframework.module.base.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gpframework.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * @ClassName BaseStoreConfigVo
 * @Author gpframework
 * @Date 2022-04-06
 * @Version 1.0.0
 * @Description 店铺基础配置（折扣、手续费等）Vo对象
 */
@Data
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class BaseStoreConfigVo {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @ApiModelProperty("ID")
    private Long baseStoreConfigId;

    /**
     * 父id
     */
    @Excel(name = "父id")
    @ApiModelProperty("父id")
    private Long pid;

    /**
     * 业务标识
     */
    @Excel(name = "业务标识")
    @ApiModelProperty("业务标识")
    private String key;

    /**
     * 分组
     */
    @Excel(name = "分组")
    @ApiModelProperty("分组")
    private String groupKey;

    /**
     * 内容
     */
    @Excel(name = "内容")
    @ApiModelProperty("内容")
    private String content;

    /**
     * 输入类型;手动输入、选择框
     */
    @Excel(name = "输入类型;手动输入、选择框、时间输入框")
    @ApiModelProperty("输入类型;手动输入、选择框、时间输入框")
    private String inputType;

    /**
     * 选项的值
     */
    @Excel(name = "选项的值")
    @ApiModelProperty("选项的值")
    private String value;

    /**
     * 选项的值List
     */
    @Excel(name = "选项的值List")
    @ApiModelProperty("选项的值List")
    private List<String> valueList;

    /**
     * 是否是最后一级
     */
    @Excel(name = "是否是最后一级")
    @ApiModelProperty("是否是最后一级")
    private String isLastLevel;

    /**
     * 排序
     */
    @Excel(name = "排序")
    @ApiModelProperty("排序")
    private Long sort;

    /**
     * 备注
     */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remarks;

    /**
     * 创建者
     */
    @ApiModelProperty("创建者")
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 更新者
     */
    @ApiModelProperty("更新者")
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /**
     * 选项
     */
    @ApiModelProperty("选项")
    private String storeValue;

    /**
     * 所选的标识
     */
    @ApiModelProperty("所选的标识")
    private String storeKey;

    /**
     * 选项
     */
    @ApiModelProperty("选项")
    private List<BaseStoreConfigVo> children;

    @Override
    public String toString() {
        return "BaseStoreConfigVo{" +
                "baseStoreConfigId=" + baseStoreConfigId +
                "\n, pid=" + pid +
                "\n, key='" + key + '\'' +
                "\n, groupKey='" + groupKey + '\'' +
                "\n, content='" + content + '\'' +
                "\n, inputType='" + inputType + '\'' +
                "\n, value='" + value + '\'' +
                "\n, isLastLevel='" + isLastLevel + '\'' +
                "\n, sort=" + sort +
                "\n, remarks='" + remarks + '\'' +
                "\n, createBy='" + createBy + '\'' +
                "\n, createTime=" + createTime +
                "\n, updateBy='" + updateBy + '\'' +
                "\n, updateTime=" + updateTime +
                "\n, storeValue='" + storeValue + '\'' +
                "\n, storeKey='" + storeKey + '\'' +
                "\n, children=" + children +
                '}';
    }
}
